DML语句使用手册¶
INSERT¶
InsertIntoStmt: "INSERT" TableOptimizerHints PriorityOpt IgnoreOptional IntoOpt TableName PartitionNameListOpt InsertValues OnDuplicateKeyUpdate TableOptimizerHints: "" PriorityOpt: "" IgnoreOptional: "" IntoOpt: {} | "INTO" TableName: Identifier | Identifier '.' Identifier PartitionNameListOpt: "" InsertValues: '(' ColumnNameListOpt ')' ValueSym ValuesList | ValueSym ValuesList | "SET" ColumnSetValueList OnDuplicateKeyUpdate: "" ColumnNameListOpt: "" | ColumnNameList ColumnNameList: ColumnName | ColumnNameList ',' ColumnName ValueSym: "VALUE" | "VALUES" ValuesList: RowValue | ValuesList ',' RowValue RowValue: '(' ValuesOpt ')' ValuesOpt: "" | Values Values: Values ',' ExprOrDefault | ExprOrDefault ExprOrDefault: Expression | "DEFAULT" ColumnSetValueList: "" | ColumnSetValue | ColumnSetValueList ',' ColumnSetValue ColumnSetValue: ColumnName eq('=') ExprOrDefault
UPDATE¶
UpdateStmt: "UPDATE" TableRef "SET" AssignmentList WhereClauseOptional OrderByOptional LimitClause | "UPDATE" TableRefs "SET" AssignmentList WhereClauseOptional Empty: /* empty */ TableName: Identifier | Identifier '.' Identifier TableRefs: EscapedTableRef | TableRefs ',' EscapedTableRef EscapedTableRef: TableRef | '{' Identifier TableRef '}' TableRef: TableFactor | JoinTable TableFactor: TableName TableAsNameOpt | '(' SelectStmt ')' TableAsName | '(' SetOprStmt ')' TableAsName | '(' TableRefs ')' TableAsNameOpt: Empty | TableAsName TableAsName: Identifier | "AS" Identifier JoinTable: TableRef CrossOpt TableRef | TableRef CrossOpt TableRef "ON" Expression | TableRef CrossOpt TableRef "USING" '(' ColumnNameList ')' | TableRef JoinType OuterOpt "JOIN" TableRef "ON" Expression | TableRef JoinType OuterOpt "JOIN" TableRef "USING" '(' ColumnNameList ')' | TableRef "NATURAL" "JOIN" TableRef | TableRef "NATURAL" JoinType OuterOpt "JOIN" TableRef | TableRef "STRAIGHT_JOIN" TableRef | TableRef "STRAIGHT_JOIN" TableRef "ON" Expression CrossOpt: "JOIN" | "CROSS" "JOIN" | "INNER" "JOIN" JoinType: "LEFT" | "RIGHT" OuterOpt: Empty | "OUTER" ColumnName: Identifier | Identifier '.' Identifier ColumnNameList: ColumnName | ColumnNameList ',' ColumnName AssignmentList: Assignment | AssignmentList ',' Assignment Assignment: ColumnName eq ExprOrDefault ExprOrDefault: Expression | "DEFAULT" WhereClauseOptional: Empty | WhereClause WhereClause: "WHERE" Expression OrderByOptional: Empty | OrderBy OrderBy: "ORDER" "BY" ByList ByList: ByItem | ByList ',' ByItem ByItem: Expression Order Order: Empty | "ASC" | "DESC" LimitClause: Empty | "LIMIT" LimitOption LimitOption: LengthNum LengthNum: NUM NUM: intLit Identifier: identifier /**************查阅DQL、Expression************/ Expression: SelectStmt: SetOprStmt:
DELETE¶
DeleteFromStmt: "DELETE" "FROM" TableName TableAsNameOpt WhereClauseOptional OrderByOptional LimitClause | "DELETE" TableAliasRefList "FROM" TableRefs WhereClauseOptional | "DELETE" "FROM" TableAliasRefList "USING" TableRefs WhereClauseOptional Empty: /* empty */ TableName: Identifier | Identifier '.' Identifier TableAsNameOpt: Empty | TableAsName TableAsName: Identifier | "AS" Identifier WhereClauseOptional: Empty | WhereClause WhereClause: "WHERE" Expression OrderByOptional: Empty | OrderBy OrderBy: "ORDER" "BY" ByList ByList: ByItem | ByList ',' ByItem ByItem: Expression Order Order: Empty | "ASC" | "DESC" LimitClause: Empty | "LIMIT" LimitOption LimitOption: LengthNum LengthNum: NUM NUM: intLit TableAliasRefList: TableNameOptWild | TableAliasRefList ',' TableNameOptWild TableNameOptWild: Identifier OptWild | Identifier '.' Identifier OptWild OptWild: Empty | '.' '*' TableRefs: EscapedTableRef | TableRefs ',' EscapedTableRef EscapedTableRef: TableRef | '{' Identifier TableRef '}' TableRef: TableFactor | JoinTable TableFactor: TableName TableAsNameOpt | '(' SelectStmt ')' TableAsName | '(' SetOprStmt ')' TableAsName | '(' TableRefs ')' JoinTable: /* Use %prec to evaluate production TableRef before cross join */ TableRef CrossOpt TableRef | TableRef CrossOpt TableRef "ON" Expression | TableRef CrossOpt TableRef "USING" '(' ColumnNameList ')' | TableRef JoinType OuterOpt "JOIN" TableRef "ON" Expression | TableRef JoinType OuterOpt "JOIN" TableRef "USING" '(' ColumnNameList ')' | TableRef "NATURAL" "JOIN" TableRef | TableRef "NATURAL" JoinType OuterOpt "JOIN" TableRef | TableRef "STRAIGHT_JOIN" TableRef | TableRef "STRAIGHT_JOIN" TableRef "ON" Expression CrossOpt: "JOIN" | "CROSS" "JOIN" | "INNER" "JOIN" JoinType: "LEFT" | "RIGHT" OuterOpt: Empty | "OUTER" ColumnName: Identifier | Identifier '.' Identifier ColumnNameList: ColumnName | ColumnNameList ',' ColumnName